perm filename FIGS[IJ,DBL] blob sn#139549 filedate 1975-01-13 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00003 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	.DEVICE XGP
C00004 00003	5↓_Appendix 1: Values of parts of a typical BEING_↓*
C00020 ENDMK
C⊗;
.DEVICE XGP
.!XGPCOMMANDS←"/TMAR=60/PMAR=2252/BMAR=89"

.FONT 1 "NGR25"
.FONT 4 "BDI25"
.FONT 3 "NGR20"
.FONT 2 "BDR25X"
.FONT 5 "NGR40"
.TURN ON "↓_π{"
.TURN ON "⊗" FOR "%"
.PAGE FRAME 50 HIGH 89 WIDE
.AREA TEXT LINES 2 TO 50
.AREA HEADING LINE 1
.!XGPLFTMAR←120
.SPACING 70 MILLS
.PREFACE 180 MILLS
.NOFILL
.PAGE FRAME 50 HIGH 89 WIDE
.AREA TEXT LINES 2 TO 50
.AREA HEADING LINE 1
.PREFACE 45 MILLS
.EVERY HEADING(,,)
.FILL
.NEXT PAGE
.MACRO B ⊂ BEGIN VERBATIM GROUP ⊃
.MACRO BB ⊂ BEGIN NOFILL SELECT 1 INDENT 0 GROUP ⊃
.MACRO E ⊂ APART END ⊃
.MACRO D ⊂ ONCE PREFACE 100 MILLS ⊃
.MACRO BBB ⊂ BEGIN  INDENT 0  PREFACE 100 MILLS  SPACING 45 MILLS ⊃
.TABBREAK
.NEXT PAGE
.ONCE CENTER
⊗5↓_Appendix 1: Values of parts of a typical BEING_↓⊗*

We consider 
⊗3INFO-OBTAINER⊗*, a BEING which is independent of task domain.
Below is listed, for each part, its abbreviated name (in bold),
an English question that it might (try to) answer, the stored program which should
try to answer it (often a simple template or a constant),
and occasionally a brief explanation.

.BB

⊗2WHAT⊗*	What do you do?     	 (OBTAIN SOME INFORMATION WHICH CAN BE USED) 
⊗2WHY⊗*		 Why?     (PUP HAS NO MORE INFORMATION THAT IT CAN USE TO PROGRESS) 
⊗2HOW⊗*     	 How?     (OBTAIN NEW FACTS ABOUT OLD INFORMATION, OR OBTAIN TOTALLY NEW INFO)
⊗2IDEN⊗*	   Can you recognize this phrase: "Find out more about frob gyrnation"?
	((if you see: (INFO-OBTAINER any1)   then return: (INFO-OBTAINER (TRANSLATE any1)))
	 (if you see: (FIND OUT MORE ABOUT any1)   then return: (INFO-OBTAINER any1)))
⊗2EXPLICIT-ARGS⊗*    	What argument(s) do you take?  		( U )
⊗2EVAL-ARGS⊗*	   Which are quoted, not evaluated?         NIL
⊗2IMPLICIT-ARGS⊗*       What local variables are needed?	 NIL
⊗2WHEN⊗*	When should you take control (justify your answer)?
	((if T then add in -10 because (I AM EXPONENTIALLY-GROWING, GENERALLY UNDESIRABLE))
	 (if NEW-INFO-LIST then add in  (PLUS  100  (LENGTH  NEW-INFO-LIST))
	       	because (WE SHOULD WORK ON UNASSIMILATED NEW  INFORMATION IF THERE IS ANY)))
.E
The WHEN part of a BEING is a collection of triples: if <predicate> then
<value> because <reason>.  If the <predicate> evaluates to non-null, then
the <value> program is executed. It returns a number, which is then added
together with the other factors' numbers to produce a rough estimate of
how a propos this BEING is to take control right now.  The <reason>
evaluates to an English phrase, for the benefit of inquisitive users.
This linear scheme is undesirable but (sigh) adequate. The first factor
here says to always add in the number -10; the second says
if there is some new information sitting around unexploited, to add in 100
plus the number of such pieces.
These factors and their weights, like the contents of all the parts
of all the BEINGs initially in the experimental PUP6 system, 
were decided upon and inserted by
hand.

.BB
⊗2META-CODE⊗*   	What happens when you are in control?
  (DO
       (CHOOSE-FROM ((GET-NEW-INFORMATION U)
  	    	          (TRANSLATE U)
	                  (ANALYZE-IMPLICATIONS U)
			  (EXTRACT-RELEVANT-SUBSET U)))
    BECAUSE
        (WE CAN ONLY TRY TO OBTAIN USABLE INFORMATION IN ONE WAY AT A TIME))
⊗2MAIN-EFFECTS⊗*      Can you cause this to occur: "Usable information exists"?
	((to get (NEW INFORMATION any1)       do (INFO-OBTAINER any1))
	 (to get (USABLE INFORMATION any1)   do (INFO-OBTAINER any1)))
⊗2AFFECTS⊗*     	What other BEINGs might you call on directly?
	((CHOOSE-FROM is called)
	 (some BEING who can cause (AWARE USER (ABOUT TO OBTAIN USABLE INFO)) is called)
	 (GET-NEW-INFORMATION possibly is called)
	 (TRANSLATE possibly is called)
	 (ANALYZE-IMPLICATIONS possibly is called)
	 (EXTRACT-RELEVANT-SUBSET possibly is called) )
⊗2COMPLEXITY-VECTOR⊗*   	How costly are you?		(.5 .5 .9 .5 .1) 
.E
The first component says that ⊗3INFO-OBTAINER⊗* is of average
difficulty to call. Next, there exists a .5 chance that some descendant
will call it again. The third component indicates that this activity almost
always succeeds. The time/space used in allowing this BEING to try
is typical. Finally, there is no good reason for inhibiting
it ever.  In general, each component can be a ⊗2program⊗*,
not just a constant.

.BB
⊗2GENERALIZATIONS⊗*      What BEINGs are more general than you?  	(WRITE-PROGRAM  SERVE-THE-USER)
⊗2ALTERNATIVES⊗*          What BEINGs are similar to you, alternatives in case you fail?
	(USE-INFORMATION  FIX-INCORRECT-PIECE  OPTIMIZE  FILL-IN-UNDEFINED-SECTION)
.E